草庐IT

Java Xpath 表达式

全部标签

c# - .NET Core 2.1 - 循环中的正则表达式比 2.0 慢 200 倍(简单基准测试中为 3 倍)

我有以下正则表达式:varregex=newRegex(@"^ActiveMQ[\d\.-]*$",RegexOptions.Compiled|RegexOptions.IgnoreCase|RegexOptions.CultureInvariant);它运行超过1000个字符串(IsMatch调用)。在.NETCore2.0中,它大约需要10ms。迁移到.NETCore2.1后,它会在2秒上处理相同的数据。知道发生了什么事吗?2.1中有任何行为变化吗?======================更新:BenchmarkDotNet可重现的3倍下降(只需运行,将csproj文件中的ne

c# - 使用 Lambda 表达式获取方法名称

我正在尝试使用lambda表达式获取类型上的方法名称。我正在使用WindowsIdentityFoundation,需要定义访问策略,其中类型名称和命名空间作为资源,方法名称作为操作。这是一个例子。这是我将从中获取类型名称和方法名称的类型:namespaceMy.OrderEntry{publicclassOrder{publicvoidAddItem(stringitemNumber,intquantity){}}}这就是我想通过DSL定义访问策略的方式:ForResource().Performing(o=>o.AddItem).AllowUsersHaving(newClaim(

c# - Entity Framework /Linq 表达式从字符串转换为 int

我有一个像这样的表达式:varvalues=Enumerable.Range(1,2);returnmessage=>message.Properties.Any(p=>p.Key==name&&int.Parse(p.Value)>=values[0]&&int.Parse(p.Value)这可以正常编译,但是当它访问数据库时会抛出异常'LINQtoEntitiesdoesnotrecognizethemethod'Int32Parse(System.String)'method,andthismethodcannotbetranslatedintoastoreexpression'

c# - 最短公共(public)前缀的 LINQ 表达式

谁能帮我用一个很好的LINQ表达式来转换另一个列表中的字符串列表,该列表只包含字符串的最短不同公共(public)前缀?前缀的分隔符是..示例:["A","A.B.D","A","A.B","E","F.E","F","B.C"]转到:["A","E","F","B.C"]已删除:“A.B.D”和“A.B”,因为前缀“A”已经在列表中“A”因为是重复的“F.E”因为“F”已经在列表中谢谢! 最佳答案 给你:fromsetin(fromiteminlistselectitem.Split('.')).GroupBy(x=>x[0])s

c# - 从字符串属性名称创建通用表达式

我有一个名为sortColumn的变量,它包含我想作为查询结果排序依据的列的文本。我还有一个通用存储库,它将包含我要排序的字段的表达式作为参数。我似乎无法从字符串属性名称获取表达式。所以我拥有的通用存储库包含以下方法publicIEnumerableGet(Expression>criteria,Expression>orderBy,intpageIndex,intpageSize,boolisAssendingOrder=true,EnumDeletePolicydeletePolicy=EnumDeletePolicy.ExcludeDeleted)注意此Get的第二个参数是Exp

c# - Shouldly 断言库如何知道应用断言的表达式?

Shouldlyassertionlibraryfor.NET不知何故知道调用断言方法的表达式,因此它能够将其显示到消息中。我试图找出它是如何工作的,但在源代码中迷路了。我怀疑它会查看编译后的代码,但我真的很想看看这是怎么发生的。来自文档map.IndexOfValue("boo").ShouldBe(2);//->map.IndexOfValue("boo")shouldbe2butwas1不知何故Shouldly知道表达式map.IndexOfValue("boo")并且能够在测试失败消息中显示它。有谁知道这是怎么发生的? 最佳答案

c# - 正则表达式允许数字、破折号、逗号

我想知道c#的正则表达式满足以下模式:只允许数字、逗号和数字必须以数字开头和结尾数字范围是0到999数字(例如1、2、3)或范围(例如1-3、2-5)以“,”分隔两个','之间必须是数字或范围'-'必须以数字开头和结尾','后只允许有0-1个空格示例:1-100,134,200-->PASS.Maximumrangeofnumbers0-9991,18,100-->PASS1,18,100-->PASS.Allow0-1whitespaceafter','1,18,100-->FAIL.Duetomorethan1whitespaceafter','1-,18,100-->FAIL.D

C# lambda 表达式和 IComparer

我在C#中使用lambda表达式对数组进行排序和搜索。我不想在我的类中实现IComparer接口(interface),因为我需要对多个成员字段进行排序和搜索。classWidget{publicintfoo;publicvoidBar(){Widget[]widgets;Array.Sort(widgets,(a,b)=>a.foo.CompareTo(b.foo));Widgetx=newWidget();x.foo=5;intindex=Array.BinarySearch(widgets,x,(a,b)=>a.foo.CompareTo(b.foo));}}虽然排序工作正常,但

c# - MVC html 助手如何使用表达式获取对象属性

例如:Html.TextBoxFor(x=>x.ModelProperty)如果我要将这样的表达式作为方法参数,我将如何从表达式中获取引用的属性?我在表达式方面的经验有些有限,而且根据我所知道的,我不明白它是如何工作的。 最佳答案 您可以像这样轻松获取属性名称:varmetadata=ModelMetadata.FromLambdaExpression(expression,html.ViewData);varpropName=metadata.PropertyName;或者您可以获得属性及其属性:MemberExpressionm

c# - 正则表达式 - 比赛后只允许有空格或什么都没有

您好,我几乎是Regex的新手...所以,也许我的问题很简单,但我找不到解决方案!我正在编写一个正则表达式模式,它会查看用户的书写内容并用另一种颜色绘制所建立的匹配项。例如,如果用户这样写,我想用另一种颜色绘画:foo()问题是我不想描绘如果用户在那之后写了别的东西,我的意思是如果用户只写"foo()"(or"foo()")那还好,我想画,但是如果用户写"foo()d"我不想画那个,因为现在对我来说写得很好。我已经编写了匹配“foo()”(或者中间还有一个点,如“foo.foo()”)的正则表达式模式,但我面临着这个问题。我需要在我的模式中添加一些东西,只允许有一个空格,或者什么都没有